"""
Type definitions for continual learning framework components.

This module defines standardized output types and data structures for
consistent interfaces between components in the continual learning framework.
"""

from typing import Dict, Union, Any
import torch

from .outputs import AdapterOutput, BackboneOutput, ModelOutput, HookOutput

# Define a TypeAlias for tensor-like objects
TensorLike = Union[torch.Tensor, Dict[str, torch.Tensor]]

# Define standard data batch and task data types
BatchData = Dict[str, Any]
TaskData = Dict[str, Any]

__all__ = [
    "AdapterOutput",
    "BackboneOutput",
    "ModelOutput",
    "HookOutput",
    "BatchData",
    "TaskData",
    "TensorLike",
]
